// 用于创建store对象并配置vuex
import Vue from 'vue'
import vuex from 'vuex'
Vue.use(vuex)
// 引入vuex模块化对象
import todo from './todo'
// 创建store
const store = new vuex.Store({
  modules: {
    xxx: todo,
  },
})

// 这个方法,用于监听vuex中的state或getters数据
store.watch(
  function (state, getters) {
    // console.log('fn', state, getters['xxx/allTotal'])
    // 这个函数中返回什么,就监听什么数据
    return state.xxx.todos
  },
  // callback这个函数,接收到两个参数,都是fn函数的返回值
  function (todos) {
    // 监听的数据发生变化,就触发这个函数
    localStorage.setItem('todos', JSON.stringify(todos))
  },
  // 这个配置对象是可选参数,里面的配置内容和vue中的监视属性的配置对象是一样的
  {
    deep: true, //深度监听，默认false
  }
)
export default store
